#include <iostream>

using namespace std;

class X {
	int a;
public:
	X (int i=0): a(i) { 
		cout<<"Constructor X:"<<a<<endl; 
	} 
	
};

class Y: public X {
	int b;
	X x1,x2;
public:
	Y(int i, int j, int m, int n): b(i), x2(j), x1(m), X(n)
	{ 
		cout<<"Constructor Y:"<< b <<endl; 
	}
};

int main(int argc, char *argv[]) {
	/*
		1、创建子类时 -- 调用父类构造方法，调用成员变量的构造方法，调用子类构造方法
		2、不依照 初始化列表的顺序调用构造方法，而是依照 类中成员变量的顺序调用构造方法
	*/
	Y y(1,2,3,4);
	return 0;
}